home *** CD-ROM | disk | FTP | other *** search
/ Delphi 2 - Developers' Solutions / Delphi 2 Developers' Solutions.iso / dds / chap07 / howto04 / delphi10 / scanners / scanform.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-04-12  |  1.4 KB  |  70 lines

  1. unit Scanform;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls, DB, DBTables;
  8.  
  9. type
  10.   TScannerTestForm = class(TForm)
  11.     CountryTable: TTable;
  12.     ListCountriesButton: TButton;
  13.     ListBigCountriesButton: TButton;
  14.     procedure ListCountriesButtonClick(Sender: TObject);
  15.     procedure ListBigCountriesButtonClick(Sender: TObject);
  16.   private
  17.     { Private declarations }
  18.   public
  19.     { Public declarations }
  20.   end;
  21.  
  22. var
  23.   ScannerTestForm: TScannerTestForm;
  24.  
  25. implementation
  26.  
  27. uses Scanners;
  28.  
  29. {$R *.DFM}
  30.  
  31. procedure ShowCountry( ATable: TTable ); far;
  32. begin
  33.   messageBeep( $FFFF );
  34.   showMessage( ATable.FieldByName( 'Name' ).AsString );
  35. end;
  36.  
  37. procedure TScannerTestForm.ListCountriesButtonClick(Sender: TObject);
  38. var
  39.   MyScanner: TTableActionScanner ;
  40. begin
  41.   MyScanner := TTableActionScanner.Create(
  42.     CountryTable,
  43.     ShowCountry
  44.   );
  45.   MyScanner.Execute;
  46.   MyScanner.Free;
  47. end;
  48.  
  49. function BigCountry( SourceTable: TTable ): Boolean; far;
  50. begin
  51.  Result :=
  52.    (SourceTable.FieldByName( 'Area' ).AsInteger > 2000000);
  53. end;
  54.  
  55. procedure TScannerTestForm.ListBigCountriesButtonClick(
  56.   Sender: TObject);
  57. var
  58.   MyScanner: TTableActionScanner ;
  59. begin
  60.   MyScanner := TTableConditionalActionScanner.Create(
  61.     CountryTable,
  62.     ShowCountry,
  63.     BigCountry
  64.   );
  65.   MyScanner.Execute;
  66.   MyScanner.Free;
  67. end;
  68.  
  69. end.
  70.